home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / PowerPC / PPC News 3012 < prev    next >
Encoding:
Text File  |  1994-05-03  |  11.9 KB  |  219 lines  |  [TEXT/ERIC]

  1. CLIENT/SERVER - THE CRACKS APPEAR
  2.  
  3. Software Futures is extremely fed up with this mess called
  4. client/server.
  5.  
  6. Oh, you didn't know it was a mess? You just plug a few Windows PCs
  7. together, stick Sybase on a Unix server, maybe bung in a gateway to
  8. talk to the IMS database on the mainframe, and Bob's your uncle,
  9. right? (And client/server means the same as Unix and downsizing, of
  10. course.) What could be simpler - they're all standard pieces by now.
  11. And hey presto, you save millions of pounds, automatically,
  12. overnight, guaranteed. Because client/server is cheaper, right? Old
  13. computer solutions are evil and were concocted by people who fought
  14. in World War II, and we know better, correct? And open systems means
  15. the best deal for the customer because choice guarantees quality and
  16. honesty.
  17.  
  18. If you believe this list of nostrums then you don't deserve to hold
  19. your current position.
  20.  
  21. As a manager, as a developer of systems that are supposed to be of
  22. some earthly use, or as a user who should be informed enough to know
  23. he's being hoodwinked - it's just not good enough to believe all of
  24. that received wisdom. In fact, it's irresponsible. Let's see if we
  25. can enlighten you on a few home truths.
  26.  
  27. Last summer Software Futures attended DB/Expo, the best trade show
  28. we've ever been to, in San Francisco. 25,000 other delegates seemed
  29. to think so, too. In this article we'll try and share just why it
  30. was so good: and why it's helped drive us to the stage where we're
  31. totally fed up with the drivel we're told, and constantly repeating
  32. to each other, about the practical reality of building computer
  33. systems in the mid-1990s.
  34.  
  35. We'll concentrate on a presentation given by a chap called Richard
  36. Finkelstein, president of Chicago based Performance Computing.
  37. (Finkelstein can be contacted on (0101) 312 549 8325.) Richard is
  38. very unhappy with client/server too.
  39.  
  40. You see, he wants to go home at a normal time occasionally. He'd
  41. like to have the odd weekend free, and take his children to the zoo.
  42. Does this sound so bad or difficult to achieve? Well, no, you might
  43. say. What's his problem?
  44.  
  45. "I'm tired of the 5pm to midnight shift and I'm tired of working
  46. every weekend. I spent a whole weekend once on a client/server bug
  47. that turned out to be a Goddam printer cable problem! I think it's a
  48. good thing Bill Gates is getting married, because then he may find
  49. out there's more to life than working on computers," thundered
  50. Finkelstein at the start of his outstanding one day seminar,
  51. "Evaluating and Using SQL Client/Server Software." You see, Rich has
  52. been working too hard. That's because he is a dedicated software
  53. professional, who believes in what he does. So when these
  54. client/server bolt-together systems you believe are so easy to build
  55. don't work, which is nearly all the time, he feels he has to try and
  56. fix them. He says he feels he's had a good day when the things print
  57. - just that, and he feels relieved and that he's accomplished
  58. something. And he's not going to take it any more, quite frankly.
  59.  
  60. What is client/server? The simplest scenario involves among other
  61. complexities this: A set of function calls, or APIs (application
  62. programming interfaces), are used by a software application to
  63. request information from a database, usually over a network. The API
  64. sends requests or statements in a language called SQL into the
  65. network library to talk the right fragment of TCP/IP or named pipes
  66. or NetWare or whatever to get the data back. Every vendor provides
  67. different, specific bits, which you have to install.
  68. It's supposed to be like using the telephone. It's not. " In
  69. reality, nothing is transparent to the network, and it's not plug
  70. and play. With a network, for instance, what memory chip you use
  71. can have a big impact," says Finkelstein. "Nothing is easy in this
  72. world - especially client/server. If vendors tell you it is, they're
  73. either naive or don't know what they're talking about."
  74.  
  75. Take standards. Take them right out of the whole picture, and throw
  76. them as far away as you can, in fact.
  77.  
  78. We can evolve a Standard Rule right here: "By choosing a
  79. standards-based way of doing things in the client/server world, I am
  80. happy to sacrifice performance and features in favour of portability
  81. and conformance." Read this sentence as many times as you need to
  82. really understand it. Get real - you know that this is how it works
  83. in IT. This is the world of computer vendors like IBM and Oracle,
  84. remember. If you're happy with that, follow it through in your
  85. expectations of what these systems will do for your company - as
  86. we'll keep reminding you in this piece, that's the bunch of funny
  87. people down the hall who pay your wages and who sell things. Now and
  88. again, they might want you to build Tem something to save or make
  89. money.
  90.  
  91. For instance: Middleware is very important in building client/server
  92. systems. One of the basic components is the API level. At the top
  93. level sits the application - if you've lost track of why this is
  94. important in all this chaos, that's what we're supposed to be doing
  95. all this for - which may speak to Excel, or Focus, or PowerBuilder
  96. or whatever. Underneath may be a whole layer: Excel using Microsoft
  97. DLL calls, the PowerBuilder app speaking to an rdbms API like
  98. Sybase, a "standard" API like ODBC, or Focus speaking to a "gateway"
  99. API like EDA/SQL. (All of these may be intercommunicating with each
  100. other at this level.) Then this layer will be speaking to specific
  101. dbms drivers, which will speak to LAN network drivers or to a WAN
  102. gateway. Phew. With us so far?
  103.  
  104. Now in the bad old days, goes the argument, you had to use the API
  105. that came with your Oracle or Informix or whatever rdbms, so you had
  106. to stick with that one. So what users really wanted, or were told
  107. they wanted - and people like me in the press are just as guilty as
  108. the vendors here - was an open API so they could have one for all
  109. uses, have portable applications, not be dependent on one rdbms
  110. vendor, etc etc. This is what things like SQL Access Group (SAG) and
  111. so on are all about. The promise is that we'll end up with one API
  112. that works with all database servers. BUT! Following the
  113. practicality line, think about it: using the native rdbms API
  114. maximises performance and functionality (remember, the Standard
  115. Rule), and means it's not dependent on any other vendors, meaning
  116. release synchronisation is much easier.
  117.  
  118. This point is INCREDIBLY important to understand. Consider a
  119. consortium like the SAG. It's made up of 44 vendors. Have you ever
  120. seen anything useful come out of a body with that many (often
  121. viciously competitive) players? The Group has tried, nobly, to
  122. wrestle with some difficult issues, sure - SQL syntax and semantics
  123. differences, codification of data types, error handling and
  124. reporting, catalogue table issues and do forth. But as Finkelstein
  125. says, "It's not completed, IBM does not participate, and no-one has
  126. implemented it and no-one will." Why? Because there are already too
  127. many standard APIs, and they're not provided by neutral bodies -
  128. basically, they are either for or against Microsoft/IBM. Instead of
  129. proprietary APIs we have standard proprietary APIs! This covers
  130. ODBC, IDAPI, Oracle Glue (or as Finkelstein jokes, "Glue users to
  131. Oracle - this appears to be another marketing announcement with no
  132. engineering") and so on.
  133.  
  134. For your information: Microsoft's Access does not support the latest
  135. ODBC. So the vendor can't even support its own standard! "What do you
  136. gain from using ODBC or IDAPI but an extra layer of complexity? Does
  137. anyone really want to do this?" asks Finkelstein, noting with a
  138. straight face, "It may be useful for very simple applications."
  139.  
  140. Think about, for instance, ODBC. It's based on the SAG call level
  141. interface - with "extensions." It's still evolving. It's still got
  142. big performance and memory overhead problems. There are few drivers
  143. built, and it's hard to build one. There are many sorts of
  144. conformance levels, core, level 1 and level 2. It's also owned by
  145. Microsoft. That means to build drivers, (a) you have to depend on
  146. Microsoft to keep synchronised with all the other vendorsU new rdbms
  147. APIs - and standards are ALWAYS behind the latest release - and (b)
  148. as a vendor you have to go to Microsoft and tell it what you're
  149. going to be doing with your database so it can build the drivers!
  150.  
  151. Follow it through. The application talks to the IDAPI API which
  152. talks to the IDAPI driver which talks to the ODBC API which talks to
  153. the ODBC driver... what if they don't translate properly? What if
  154. they're unable to translate? What if they translate but it takes so
  155. much steam out of the system the users throw their mice at the
  156. screen in disgust? What if vendor A's release is one release behind
  157. the ODBC spec vendor B is following? What if Microsoft decides it
  158. wants to favour vendor P's implementation of row level locking over
  159. vendor Q's? What if you sell the idea of openness to you boss, spend
  160. =9C500,000 on this junk, and it just doesn't do what it tells you in
  161. the standards brochure (question: do code examples in books EVER
  162. work)? Stand there wringing your hands and say it should, because
  163. it's standard? What are you going to do - cry?
  164.  
  165. You may want to open the window in shock at this point. It's a
  166. cliched image, but this really is the Emperor's new clothes time.
  167. We're all for standards in some way - it should be the genuine route
  168. for user independence. But in the real world, the world where you
  169. want to be able to have time to take your kids to the zoo, the free
  170. market has given us just a mess (Finkelstein's phrase). Software
  171. Futures will spell it out. Things like ODBC are not useful to you,
  172. or likely to be before the next Ice Age. Do not bother reading about
  173. them. Do not listen to a vendor telling you about them. Do not buy a
  174. product because it says it is conformant to open standard X. Do not
  175. expend effort tracking which vendors say they adhere to any of them.
  176. Worry about building simple, useful computer systems for your users
  177. which work, that won't drive you into the ground building, and which
  178. won't take three times as much maintaining as the old dumb terminal
  179. version. If that means buying everything from one vendor - DO IT! As
  180. Finkelstein says, "Homogeneity means more time spent on application
  181. development and less time spent on connectivity and other networking
  182. issues. It also means more time with the family - and having a
  183. life."
  184.  
  185. "Just write to the native API already! Write an application for one
  186. database server - if you can do that you'll still be ahead of the
  187. game. But in fact what you should do is hint to your rivals that
  188. you're not, so you'll have a dozen applications in the field while
  189. they're still layering IDAPI on ODBC APIs..." is Finkelstein's sly
  190. advice.
  191.  
  192. Back to that list of assumptions about client/server. We've picked
  193. on one tiny part of the client/server world to illustrate a point:
  194. these systems are NOT as easy to build or maintain as they tell you.
  195. Instant panaceas like open proprietary standards are a nice example,
  196. because they show that when it comes down to building useful, real
  197. world applications, they're not much use.
  198.  
  199. Next month Software Futures will also try and explain the following:
  200. that client/server is NOT the same thing as Unix and downsizing;
  201. that client/server is NOT automatically cheaper than other
  202. solutions, and that if you go in with that assumption you'll get
  203. burned; why 30% of Business Process Re-engineering projects, often
  204. given as the motivation for a move to client/server, FAIL; why you
  205. should go client/server and when; why open systems has given us as
  206. many problems as the old way; which products a seasoned practitioner
  207. like Finkelstein recommends for building such systems, and why; and
  208. why there are MAYBE 100 successful client/server systems worthy of
  209. the name, worldwide, now, seven years after Sybase coined the term.
  210. Client/server might be a good idea; it may even be a good idea for
  211. your company. Software Futures thinks you might want to hang on just
  212. a little while longer to find out which products Finkelstein uses in
  213. a project when he wants to go home at the same time as all the other
  214. humans. Could be you want to as well.
  215. Unless you like mess.
  216.  
  217. (c) Software Future - select 5004 for more details
  218.  
  219.